import os  
  
def add_fade_in(filename, target_start_byte):  
    # 打开文件以读取二进制内容  
    with open(filename, 'rb') as file:  
        # 读取第一个字节  
        first_byte = file.read(1)  
        # 如果第一个字节不是目标开始字节，则添加渐变  
        if first_byte != target_start_byte:  
            fade_in = bytes(range(0, ord(first_byte), 16))  
            # 将渐变和原始文件内容合并  
            with open(filename, 'wb') as outfile:  
                outfile.write(fade_in)  
                outfile.write(file.read())  
  
def add_fade_out(filename, target_end_byte):  
    # 打开文件以读取二进制内容  
    with open(filename, 'rb') as file:  
        # 读取整个文件内容  
        content = file.read()  
        # 如果最后一个字节不是目标结束字节，则添加渐变  
        if content and content[-1] != target_end_byte:  
            fade_out = bytes(range(int(content[-1]), 0, -4))
            # 在文件末尾添加渐变  
            content += fade_out  
            # 将修改后的内容写回文件  
            with open(filename, 'wb') as outfile:  
                outfile.write(content)  
  
def process_folder(folder_path):  
    # 遍历文件夹中的.ac3文件  
    for filename in os.listdir(folder_path):  
        if filename.endswith('.ac3'):  
            file_path = os.path.join(folder_path, filename)  
            print(f"Processing {file_path}...")  
            # 假设我们想要以0x00开头，以0x00结尾  
            target_start_byte = b'\x00'  
            target_end_byte = b'\x00'  
            add_fade_in(file_path, target_start_byte)  
            # add_fade_out(file_path, target_end_byte)  
  
# 设置文件夹路径  
folder_to_process = './ac3'  # 替换为你的.ac3文件所在的文件夹路径  
# 处理文件夹中的文件  
process_folder(folder_to_process)